f1();
f2(); /* 会报错，因为在下面声明的函数定义不会提升 */
{
    f2(); /* 没问题，f2的定义会提到前面 */
    function f2 () {}
}
function f1 () {}

/* 表现不一致：qjs: 42 function, chrome: 42 42 */
{ 
    f = 42; 
    function f () {} 
    console.log(f); /* 42 */
} 
console.log(f); /* QuickJS: function..., V8: 42 */